package com.dd.cloud.common.constants;


/**
 * @author zk
 */
public class OrderConstants {

    /**
     * 数据状态
     * 状态
     */
    public interface Status {
        // 未付款
        int NOPAY = 1;
        // 退款中
        int REFUND = -1;
        // 全额退款
        int FULLREFUND = -2;
        // 删除
        int DEL = -3;
        // 部分退款
        int PARTREFUND = -21;
        // 已支付
        int PAY = 2;
        // 超时
        int TIMEOUT = 3;
        // 取消订单
        int CANCEL = 4;
    }

    /**
     * 支付订单前缀
     */
    public interface OrderPayPrefix {
        // 开发
        String DEV = "ZKFF";
        // 生产
        String PROD = "ZKFD";
        // 测试
        String TEST = "ZKFT";
    }

    /**
     * 问诊支付订单前缀
     */
    public interface PreOrderPayPrefix {
        // 生产
        String PROD = "WZCF";
        // 测试
        String TEST = "WZCFTT";
        //开发
        String DEV = "WZCFDEV";
    }

    /**
     * 包月服务支付订单前缀
     */
    public interface MonthOrderPayPrefix {
        // 生产
        String PROD = "BYFW";
        // 测试
        String TEST = "BYFWTT";
        //开发
        String DEV = "BYFWDEV";
    }


    /**
     * 兑换商品订单号
     */
    public interface ExchangeOrderPayFix {
        // 生产
        String PROD = "EGPROD";
        // 测试
        String TEST = "EGTT";
        //开发
        String DEV = "EGDEV";
    }

    /**
     * 问诊处方支付订单前缀
     */
    public interface WzOrderPayPrefix {
        // 生产
        String PROD = "WZ";
        // 测试
        String TEST = "WZTT";
        //开发
        String DEV = "WZDEV";
    }

    /**
     * 流水数据状态
     */
    public interface FlowStatus {
        // 未付款
        int NOPAY = 1;
        // 已完成
        int PAY = 2;
    }

    public interface Product {
        String SINGLE = "single";

        String PRE = "pre";
    }

    /**
     * 流水数据状态
     */
    public interface FlowType {
        // 支付
        int PAY = 1;
        // 退款
        int REFUND = 2;
    }


    /**
     * 流水前缀
     */
    public interface FlowPayPrefix {
        // 开发
        String DEV = "ZKZF";
        // 生产
        String PROD = "ZKZD";
        // 测试
        String TEST = "ZKZT";
    }

    /**
     * 退款流水前缀
     */
    public interface FlowRefundPrefix {
        // 开发
        String DEV = "ZKRF";
        // 生产
        String PROD = "ZKRD";
        // 测试
        String TEST = "ZKRT";
    }

    /**
     * 获取支付渠道类型参数标识
     */
    public static String getPayOrderCanalType(int type) {
        if (FlowType.REFUND == type) {
            return "refund";
        }
        return "pay";
    }

    /**
     * 支付成功的值
     */
    public interface PaySuccess {
        // 开发
        String WX = "SUCCESS";
        // 生产
        String ZFB = "SUCCESS";
    }

    /**
     * 订单结算状态
     */
    public interface OrderSettlement {
        // 冻结中
        int FROZEN = 1;
        // 待结算
        int UN_SETTLEMENT = 2;
        // 已结算
        int SETTLED = 3;
    }

    /**
     * 医生收入明细类型
     */
    public interface DoctorIncomeType {
        // 诊疗费
        int CONSULTATION_FEE = 1;
        // 药品返点费
        int DRUGS_FEE = 2;
        // 服务费
        int SERVICE_FEE = 3;
        // 审方费用
        int REVIEW_PRES_FEE = 5;
        //咨询费
        int CONSULT = 6;
        //问诊费
        int INQUIRY = 7;
    }

    /**
     * 医生收入明细状态
     */
    public interface DoctorIncomeStatus {
        // 冻结中/入账中
        int FROZEN = 1;
        // 可提现
        int WITHDRAW = 2;
        // 入账失败
        int ENTER_FAIL = 3;
    }


    /**
     * 医生结算状态明细
     */
    public interface DoctorSettlementStatus {
        // 待结算
        int WAIT_SETTLEMENT = 1;

        //结算中
        int SETTLEMENT = 2;

        //完成结算
        int ACCOMPLISH_SETTLEMENT = 3;

        //退款不予结算
        int NO_ONE_SETTLEMENT = 4;

        //未到达提现条件不予结算
        int NO_TWO_SETTLEMENT = 5;

    }

    /**
     * 医生提现状态
     */
    public interface DoctorWithdrawStatus {
        // 成功
        int SUCCESS = 1;
        // 失败
        int FAIL = 2;
        // 处理中
        int HANDLE_IN = 3;
    }

    /**
     * 医生提现类型
     */
    public interface DoctorWithdrawType {
        // 微信打款到零钱
        int WX_SC = 1;
        // 微信打款到银行卡
        int WX_BANK = 2;
        // 手动打款-银行卡
        int HAND_BANK = 3;
    }


    /**
     * 兑换状态 1.代发货 2.已发货 3.已取消 -1.删除
     */
    public interface ExchangeStatus {
        //代发货
        int WAIT_SEND = 1;
        //已发货
        int OVER_SEND = 2;
        //取消
        int CANCEL_SEND = 3;
    }

}
